home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Resources / Chat & Communication / Digsby build 37 / digsby_setup.exe / lib / email / base64mime.pyo (.txt) < prev    next >
Python Compiled Bytecode  |  2008-10-13  |  2KB  |  87 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.5)
  3.  
  4. __all__ = [
  5.     'base64_len',
  6.     'body_decode',
  7.     'body_encode',
  8.     'decode',
  9.     'decodestring',
  10.     'encode',
  11.     'encodestring',
  12.     'header_encode']
  13. import re
  14. from binascii import b2a_base64, a2b_base64
  15. from email.utils import fix_eols
  16. CRLF = '\r\n'
  17. NL = '\n'
  18. EMPTYSTRING = ''
  19. MISC_LEN = 7
  20.  
  21. def base64_len(s):
  22.     (groups_of_3, leftover) = divmod(len(s), 3)
  23.     n = groups_of_3 * 4
  24.     if leftover:
  25.         n += 4
  26.     
  27.     return n
  28.  
  29.  
  30. def header_encode(header, charset = 'iso-8859-1', keep_eols = False, maxlinelen = 76, eol = NL):
  31.     if not header:
  32.         return header
  33.     
  34.     if not keep_eols:
  35.         header = fix_eols(header)
  36.     
  37.     base64ed = []
  38.     max_encoded = maxlinelen - len(charset) - MISC_LEN
  39.     max_unencoded = max_encoded * 3 // 4
  40.     for i in range(0, len(header), max_unencoded):
  41.         base64ed.append(b2a_base64(header[i:i + max_unencoded]))
  42.     
  43.     lines = []
  44.     for line in base64ed:
  45.         if line.endswith(NL):
  46.             line = line[:-1]
  47.         
  48.         lines.append('=?%s?b?%s?=' % (charset, line))
  49.     
  50.     joiner = eol + ' '
  51.     return joiner.join(lines)
  52.  
  53.  
  54. def encode(s, binary = True, maxlinelen = 76, eol = NL):
  55.     if not s:
  56.         return s
  57.     
  58.     if not binary:
  59.         s = fix_eols(s)
  60.     
  61.     encvec = []
  62.     max_unencoded = maxlinelen * 3 // 4
  63.     for i in range(0, len(s), max_unencoded):
  64.         enc = b2a_base64(s[i:i + max_unencoded])
  65.         if enc.endswith(NL) and eol != NL:
  66.             enc = enc[:-1] + eol
  67.         
  68.         encvec.append(enc)
  69.     
  70.     return EMPTYSTRING.join(encvec)
  71.  
  72. body_encode = encode
  73. encodestring = encode
  74.  
  75. def decode(s, convert_eols = None):
  76.     if not s:
  77.         return s
  78.     
  79.     dec = a2b_base64(s)
  80.     if convert_eols:
  81.         return dec.replace(CRLF, convert_eols)
  82.     
  83.     return dec
  84.  
  85. body_decode = decode
  86. decodestring = decode
  87.